import unittest
import TestDemo1

# （1）TestCase：一个testcase的实例就是一个测试用例
# （2）TestSuit：多个测试用例集合在一起。TestLoder：是用来加载TestCase到TestSuite中的
# （3）TextTestRunner：是用来执行测试用例的
# （4）Fixture：测试用例环境的搭建和销毁。测试前准备环境的搭建（setUp），执行测试代码（run)以及测试后环境的还原（tearDown）

# 方式1：指定测试函数、指定顺序
suite1 = unittest.TestSuite()
suite1.addTest(TestDemo1.TestDemo("test_sub"))  # 文件.类名（“函数名”）
suite1.addTest(TestDemo1.TestDemo("test_add1"))  # 文件.类名（“函数名”）

runner = unittest.TextTestRunner()
runner.run(suite1)
print("=" * 10)
# 方式2：指定测试类
suite2 = unittest.TestSuite()
suite2.addTest(unittest.makeSuite(TestDemo1.TestDemo))
runner.run(suite2)
print("=" * 10)

# 方式3：指定资源
# 第一个参数是从哪里找py文件,"."从当前目录开始查找py文件
# 第二个参数是指定py文件的文件名,可以用通配符
suite3 = unittest.TestLoader().discover(".", "Test*.py")
print(suite3)
runner.run(suite3)
